<?php

// --- config --- {{{
//
// прошиваем локали, чтобы у нас всё работало с case-sensitivity
setlocale(LC_CTYPE, array("ru_RU.UTF-8","ru_RU","russian","ru_SU","ru"));
global $_FU_START_TIME;
$_FU_START_TIME = microtime(true);

// можем установить переменную окружения через .htaccess
$_environment = isset($_SERVER['JS_ENVIRONMENT']) ? $_SERVER['JS_ENVIRONMENT'] : 'prod';

$_install_dir = $_base_dir;
$_config_dir  = $_base_dir.'etc/';
$_lib_dir     = $_base_dir.'lib/';
$_state_dir   = $_base_dir.'var/';
$_cache_dir   = $_base_dir.'var/cache/';


ini_set('include_path', $_lib_dir.PATH_SEPARATOR.ini_get('include_path'));
require_once $_base_dir.'lib/includes/php.php';

//
// --- config --- }}}




// --- debug --- {{{
//
require_once $_base_dir.'lib/includes/debug.php';

debug(           '-------------- film by a.sibiryakov --------------');
function FU_debug_on_shutdown($msg, $level=2) 
/**
 * Вывести в лог сообщение о завершении скрипта.
 *
 * Приложение может регистрировать и другие функции через 
 * register_shutdown_function. В этом случае, они выполняются в порядке 
 * регистрации. Чтобы попасть в конец очереди функций (сообщение должно 
 * выводится последним), при первом вызове регистрирует себя еще раз (в 
 * надежде, что остальные функции так себя не ведут :)).
 * 
 * @param mixed $msg сообщение
 * @param int $level=1
 * @access public
 * @return void
 */
{
	global $_FU_START_TIME;
	if ($level <= 0) { 
		call_user_func($msg);
	}
	else             { register_shutdown_function(__FUNCTION__, $msg, $level - 1); }
}

// функция будет вызвана даже если скрипт "умрет".
FU_debug_on_shutdown(create_function('', 
	"debug(sprintf('-------------- the end (%.4f sec) --------------', microtime(true) - \$GLOBALS['_FU_START_TIME']));"));
// --- debug --- }}}

